Thx for your help Tom.
After each run I belive that encoder position is correct, and seems like motor steps were lost.
So glass scale opereates correctly.
You can see that g-code I have sent, consist of contours on same Z and only A changes during program run.
I runed G-code and I see that some times during constant Z run Dest = Pos, sometimes it's differs on 10-20 points, sometimes 100 or higher, it's almost random. After I have decreased P gain, total error after program run on Z axis decreased as well, sometimes it goes back to zero position, so I will try to add Low pass filter and test again, I belive that P gain pulses so high and drive can't handle it.
Also Z axis is heavy, so going up and going down is little bit different moves, axis can go up rather fast, but going down with same V and A causes overshot and jerks.
Next time I will add mechanical compensation to prevent this :)